<label>Частота: <input id="fIn" min="40" max="6000" oninput="ShowRange()" type="range"></label>
<span id="fOut">773 Hz</span><br>
<label>Форма: <input id="tIn" min="0" max="3" oninput="ShowRange()" type="range"></label>
<span id="tOut">square</span><br>
<label>Громкость: <input id="vIn" min="0" max="100" oninput="ShowRange()" type="range"></label>
<span id="vOut">0.66</span><br>
<label>Длительность: <input id="dIn" min="1" max="5000" oninput="ShowRange()" type="range"></label>
<span id="dOut">266 ms</span>
<br>
<button onclick="beep();"> Да будет звук! </button>
<script type="text/javascript">
audioCtx = new(window.AudioContext || window.webkitAudioContext)();
ShowRange();
function ShowRange() {
frequency = document.getElementById("fIn").value;
document.getElementById("fOut").innerHTML = frequency + ' Hz';
switch (document.getElementById("tIn").value * 1) {
case 0: type = 'sine'; name='синус'; break;
case 1: type = 'square'; name='квадрат'; break;
case 2: type = 'sawtooth'; name='пилообразный'; break;
case 3: type = 'triangle'; name='треугольник'; break;
}
document.getElementById("tOut").innerHTML = name;
volume = document.getElementById("vIn").value / 100;
document.getElementById("vOut").innerHTML = volume;
duration = document.getElementById("dIn").value;
document.getElementById("dOut").innerHTML = duration + ' ms';
}
function beep() {
var oscillator = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);
gainNode.gain.value = volume;
oscillator.frequency.value = frequency;
oscillator.type = type;
oscillator.start();
setTimeout(
function() {
oscillator.stop();
},
duration
);
}
</script>
|
773 Hz
square
0.66
266 ms
|